![AWS Toolkit for Visual Studio に CloudWatch Logs 統合機能が追加されました](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-tools-and-sdks.png)
AWS Toolkit for Visual Studio に CloudWatch Logs 統合機能が追加されました
いわさです。
Visual Studio で AWSワークロードを開発する際には AWS Toolkit for Visual Studio という Visual Studio 拡張機能を使うことで、様々なAWSサービスをIDEへ統合することが出来ます。
今週のアップデートv1.33.0.0
で CloudWatch Logs の統合機能が追加されました。
こちらを使うとマネジメントコンソールを開かずに、Visual Studio上からCloudWatch Logsへアクセスすることが出来ます。
本日はこちらの最新機能を試してみたいと思います。
拡張機能のインストール/アップデート
Visual Studio の拡張機能メニューから AWS Toolkit for Visual Studio のダウンロードとインストールを行うことが出来ます。
本日時点でサポートされているバージョンは Visual Studio の 2022, 2017, 2019 となっています。
この記事では Visual Studio 2022 を使っています。
拡張機能
より拡張機能の管理
を選択し、オンラインからAWS Toolkit for Visual Studio
を検索するか、既に旧バージョンをインストール済みの場合は更新プログラムタブから更新を行います。
更新操作を行ったのちは、一度 Visual Studio の再起動が必要です。
終了したタイミングでスケジュールされたインストールが開始され、再びVisual Studioを起動するとアップデートされた状態になります。この過程で管理者権限が要求される場合もあります。
Lambda関数をデプロイしCloudWatch Logsを確認してみる
AWS Toolkit for Visual Studio を使うと、Lambda も豊富なテンプレートから開発を始めることが出来ます。
また、Lambdaのデプロイ機能を使うことで簡単にデプロイも出来ます。せっかくなのでこのあたりも使ってみます。
Amazon.Lambda.Core.LambdaLogger
を使ってログの出力を行います。
Console.WriteLog
でも問題ないです。
using Amazon.Lambda.Core; // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))] namespace AWSLambda2; public class Function { /// <summary> /// A simple function that takes a string and does a ToUpper /// </summary> /// <param name="input"></param> /// <param name="context"></param> /// <returns></returns> public string FunctionHandler(string input, ILambdaContext context) { LambdaLogger.Log("hogehogehoge"); return input.ToUpper(); } }
Upload to AWS Lambda
でサクっとデプロイ出来ますが、CloudWatch Logsへのアクセス権限のあるロールを設定しましょう。
既存ロールでも良いですし、以下のようにNew role based on AWS managed policy
からAWSLambdaBasicExecutionRole
を選択しても良いです。
実行してみます。
ログを確認
Visual Studio 上のLambda実行ウインドウにLogs
のタブがあり、そちらからすぐにログストリームにアクセス出来ます。
また、AWSエクスプローラウィンドウから、CloudWatch Logsを選択するか、あるいは対象のLambdaのコンテキストメニューからView Logs
を選択することでも確認することが出来ます。
Logs Insightへアクセス出来るわけではないですが、簡単なフィルター機能くらいであればここから十分に利用出来ます。
さいごに
本日は AWS Toolkit for Visual Studio に追加された CloudWatch Logs 統合機能を使ってみました。
Lambdaのデプロイや実行などに加えてログも Visual Studio から確認出来るようになったので、開発者がAWSマネジメントコンソールへアクセスせずとも開発を進められるのが良いですね。
アクセスキーとシークレットがあればログイン出来なくてもS3やCloudWatch Logsへアクセス出来るので、開発者向けにアクセスキーしか払い出されていない場合でもログにアクセスしやすくなりますね。